package com.example.jobtask.config;

import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * Sa-Token权限认证接口实现
 */
@Component
public class StpInterfaceImpl implements StpInterface {

    /**
     * 返回一个账号所拥有的权限码集合
     */
    @Override
    public List<String> getPermissionList(Object loginId, String loginType) {
        // 本项目暂不使用权限码，返回空集合
        return new ArrayList<>();
    }

    /**
     * 返回一个账号所拥有的角色标识集合
     */
    @Override
    public List<String> getRoleList(Object loginId, String loginType) {
        List<String> roles = new ArrayList<>();
        
        try {
            // 从Session中获取用户角色
            String role = (String) StpUtil.getSession().get("role");
            if (role != null) {
                roles.add(role);
            }
        } catch (Exception e) {
            // 如果获取失败，返回空角色列表
            System.err.println("获取用户角色失败: " + e.getMessage());
        }
        
        return roles;
    }
}